﻿Imports DNP.GestionComercial.BE
Imports DNP.DevNetPeru.Data
Imports System.Data.SqlClient
Public Class EmpleadoDAL


    Public Function Guardar(ByVal pObjeto As EmpleadoBE, ByVal usuario As String) As RespuestaBE
        Dim oRespuesta As New RespuestaBE
        Dim mensaje As String
        Try
            Using cmd As New SqlCommand("COM_INS_COM_EMPLEADO")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_NEMP_CODIGO", SqlDbType.Int).Value = pObjeto.NEMP_CODIGO
                cmd.Parameters.Add("p_NEMP_TIPO", SqlDbType.Int).Value = pObjeto.NEMP_TIPO
                cmd.Parameters.Add("p_NEMP_TIPO_DOC", SqlDbType.Int).Value = pObjeto.NEMP_TIPO_DOC
                cmd.Parameters.Add("p_CEMP_DOCUMENTO", SqlDbType.VarChar).Value = pObjeto.CEMP_DOCUMENTO
                cmd.Parameters.Add("p_CEMP_NOMBRE", SqlDbType.VarChar).Value = pObjeto.CEMP_NOMBRE
                cmd.Parameters.Add("p_CEMP_APELLIDO", SqlDbType.VarChar).Value = pObjeto.CEMP_APELLIDO
                cmd.Parameters.Add("p_CEMP_TLFNO", SqlDbType.VarChar).Value = pObjeto.CEMP_TLFNO
                cmd.Parameters.Add("p_CEMP_TLFNO_CEL", SqlDbType.VarChar).Value = pObjeto.CEMP_TLFNO_CEL
                cmd.Parameters.Add("p_CEMP_EMAIL_01", SqlDbType.VarChar).Value = pObjeto.CEMP_EMAIL_01
                cmd.Parameters.Add("p_CEMP_EMAIL_02", SqlDbType.VarChar).Value = pObjeto.CEMP_EMAIL_02
                cmd.Parameters.Add("p_CEMP_UBIGEO", SqlDbType.VarChar).Value = pObjeto.CEMP_UBIGEO
                cmd.Parameters.Add("p_CEMP_DIRECCION", SqlDbType.VarChar).Value = pObjeto.CEMP_DIRECCION
                cmd.Parameters.Add("p_CEMP_ESTADO", SqlDbType.Char).Value = pObjeto.CEMP_ESTADO
                cmd.Parameters.Add("p_CAUDI_USR_INS", SqlDbType.VarChar).Value = usuario
                cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output

                BaseDatos.Execute(cmd)

                mensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
                If mensaje.StartsWith("-1@") Then
                    oRespuesta.Respuesta = False
                    oRespuesta.Mensaje = mensaje.Split("@")(1)
                Else
                    oRespuesta.Respuesta = True
                    oRespuesta.Mensaje = mensaje
                End If
            End Using
        Catch ex As Exception
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString
        End Try
        Return oRespuesta
    End Function

    Public Function Eliminar(ByVal pObjeto As PARAMETROBE, ByVal usuario As String) As RespuestaBE
        Dim oRespuesta As New RespuestaBE
        Dim mensaje As String
        Try
            Using cmd As New SqlCommand("COM_DEL_COM_EMPLEADO")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_NEMP_CODIGO", SqlDbType.Int).Value = pObjeto.PARAMETRO01
                cmd.Parameters.Add("p_USUARIO", SqlDbType.VarChar).Value = usuario
                cmd.Parameters.Add("p_MENSAJE", SqlDbType.VarChar, 2000).Direction = ParameterDirection.Output
                BaseDatos.Execute(cmd)

                mensaje = Convert.ToString(cmd.Parameters("p_MENSAJE").Value)
                If mensaje.StartsWith("-1@") Then
                    oRespuesta.Respuesta = False
                    oRespuesta.Mensaje = mensaje.Split("@")(1)
                Else
                    oRespuesta.Respuesta = True
                    oRespuesta.Mensaje = mensaje
                End If
            End Using
        Catch ex As Exception
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString
        End Try
        Return oRespuesta
    End Function

    Public Function ListarTodos(ByVal pParametro As PARAMETROBE) As RespuestaBE
        Dim lstObjeto As New List(Of EmpleadoBE)
        Dim oRespuesta As New RespuestaBE
        Dim dt As DataTable
        Try
            Using cmd As New SqlCommand("COM_SEL_COM_EMPLEADO")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_BUSCAR", SqlDbType.VarChar).Value = pParametro.PARAMETRO01
                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)
                    dt = New DataTable()
                    dt.Load(dr)
                    oRespuesta.ValorRertono = dt
                    oRespuesta.Respuesta = True
                End Using
            End Using
        Catch ex As Exception
            oRespuesta.ValorRertono = lstObjeto
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 

        End Try
        Return oRespuesta

    End Function

    Public Function Obtener(ByVal codigo As String) As RespuestaBE
        Dim obj As New EmpleadoBE
        Dim oRespuesta As New RespuestaBE
        Try
            Using cmd As New SqlCommand("COM_SEL_COM_EMPLEADOXCODIGO")
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("p_CODIGO", SqlDbType.VarChar).Value = codigo
                Using dr As SqlDataReader = BaseDatos.GetDataReader(cmd)
                    If dr.Read Then
                        obj = Utils.CreaObjeto(Of EmpleadoBE)(obj, dr)
                        oRespuesta.ValorRertono = obj
                        oRespuesta.Respuesta = True
                        Return oRespuesta
                    Else
                        oRespuesta.ValorRertono = obj
                        oRespuesta.Respuesta = True

                        Return oRespuesta
                    End If
                End Using

            End Using

        Catch ex As Exception
            oRespuesta.ValorRertono = obj
            oRespuesta.Respuesta = False
            oRespuesta.Mensaje = ex.ToString '"msgErrorCargarInfoBD" 

        End Try
        Return oRespuesta

    End Function

    Private Function LLenarEntidad(ByVal pdtrSource As System.Data.DataRow) As EmpleadoBE
        Dim abeResultado As New EmpleadoBE
        With abeResultado
            If pdtrSource.Table.Columns.Contains("NEMP_CODIGO") Then If IsDBNull(pdtrSource("NEMP_CODIGO")) Then .NEMP_CODIGO = 0 Else .NEMP_CODIGO = pdtrSource("NEMP_CODIGO")
            If pdtrSource.Table.Columns.Contains("NEMP_TIPO") Then If IsDBNull(pdtrSource("NEMP_TIPO")) Then .NEMP_TIPO = 0 Else .NEMP_TIPO = pdtrSource("NEMP_TIPO")
            If pdtrSource.Table.Columns.Contains("NEMP_TIPO_DOC") Then If IsDBNull(pdtrSource("NEMP_TIPO_DOC")) Then .NEMP_TIPO_DOC = 0 Else .NEMP_TIPO_DOC = pdtrSource("NEMP_TIPO_DOC")
            If pdtrSource.Table.Columns.Contains("CEMP_DOCUMENTO") Then If IsDBNull(pdtrSource("CEMP_DOCUMENTO")) Then .CEMP_DOCUMENTO = String.Empty Else .CEMP_DOCUMENTO = pdtrSource("CEMP_DOCUMENTO")
            If pdtrSource.Table.Columns.Contains("CEMP_NOMBRE") Then If IsDBNull(pdtrSource("CEMP_NOMBRE")) Then .CEMP_NOMBRE = String.Empty Else .CEMP_NOMBRE = pdtrSource("CEMP_NOMBRE")
            If pdtrSource.Table.Columns.Contains("CEMP_APELLIDO") Then If IsDBNull(pdtrSource("CEMP_APELLIDO")) Then .CEMP_APELLIDO = String.Empty Else .CEMP_APELLIDO = pdtrSource("CEMP_APELLIDO")
            If pdtrSource.Table.Columns.Contains("CEMP_TLFNO") Then If IsDBNull(pdtrSource("CEMP_TLFNO")) Then .CEMP_TLFNO = String.Empty Else .CEMP_TLFNO = pdtrSource("CEMP_TLFNO")
            If pdtrSource.Table.Columns.Contains("CEMP_TLFNO_CEL") Then If IsDBNull(pdtrSource("CEMP_TLFNO_CEL")) Then .CEMP_TLFNO_CEL = String.Empty Else .CEMP_TLFNO_CEL = pdtrSource("CEMP_TLFNO_CEL")
            If pdtrSource.Table.Columns.Contains("CEMP_EMAIL_01") Then If IsDBNull(pdtrSource("CEMP_EMAIL_01")) Then .CEMP_EMAIL_01 = String.Empty Else .CEMP_EMAIL_01 = pdtrSource("CEMP_EMAIL_01")
            If pdtrSource.Table.Columns.Contains("CEMP_EMAIL_02") Then If IsDBNull(pdtrSource("CEMP_EMAIL_02")) Then .CEMP_EMAIL_02 = String.Empty Else .CEMP_EMAIL_02 = pdtrSource("CEMP_EMAIL_02")
            If pdtrSource.Table.Columns.Contains("CEMP_UBIGEO") Then If IsDBNull(pdtrSource("CEMP_UBIGEO")) Then .CEMP_UBIGEO = String.Empty Else .CEMP_UBIGEO = pdtrSource("CEMP_UBIGEO")
            If pdtrSource.Table.Columns.Contains("CEMP_DIRECCION") Then If IsDBNull(pdtrSource("CEMP_DIRECCION")) Then .CEMP_DIRECCION = String.Empty Else .CEMP_DIRECCION = pdtrSource("CEMP_DIRECCION")
            If pdtrSource.Table.Columns.Contains("CEMP_ESTADO") Then If IsDBNull(pdtrSource("CEMP_ESTADO")) Then .CEMP_ESTADO = String.Empty Else .CEMP_ESTADO = pdtrSource("CEMP_ESTADO")
            If pdtrSource.Table.Columns.Contains("DAUDI_FEC_INS") Then If IsDBNull(pdtrSource("DAUDI_FEC_INS")) Then .DAUDI_FEC_INS = Date.MinValue Else .DAUDI_FEC_INS = pdtrSource("DAUDI_FEC_INS")
            If pdtrSource.Table.Columns.Contains("CAUDI_USR_INS") Then If IsDBNull(pdtrSource("CAUDI_USR_INS")) Then .CAUDI_USR_INS = String.Empty Else .CAUDI_USR_INS = pdtrSource("CAUDI_USR_INS")
        End With
        Return abeResultado

    End Function



End Class
